package com.example.Testclass;

public class Test2 {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.eat();
        d.drink();

        Cat c = new Cat();
        c.eat();
        c.drink();

    }
}

// 1.猫类和狗类中存在共性内容，应向上抽取出一个动物类(Animal)
abstract class Animal {
    public void drink() {
        System.out.println("喝水");
    }

    // 2.父类Animal中，无法将 eat方法具体实现描述清楚，所以定义为抽象方法
    public abstract void eat();

}

class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("狗吃肉");  // 重写eat方法
    }
}

class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");  // 重写eat方法
    }
}